As information technology (IT) has grown more complex, some enterprises have found that the cost of maintaining their own IT infrastructure is too high. To reduce expenses associated with maintaining their information technology infrastructure, such enterprises are shifting to a hosted computing model. In a hosted computing model, a web services provider operates IT infrastructure on behalf of multiple enterprises. In other words, the task of maintaining IT infrastructure is outsourced to the web services provider. The enterprises that use IT infrastructure operated by the web services provider are referred to as tenants.
Tenants may use the IT infrastructure operated by the web services provider for a variety of purposes. For example, tenants may use the IT infrastructure operated by the web service provider to host websites. In a second example, tenants may use the IT infrastructure operated by the third party to host databases.
A web services provider may be required to store a large amount of data for each tenant of the web services provider. For instances, a web services provider may be required to store inventory data for each tenant of the web services provider. Furthermore, a web services provider may be required to store the data for tenants in such a way that each tenant only has access to their own data. That is, the web services provider cannot allow a first tenant to have access to a second tenant's data without the second tenant's permission. At the same time, due to the computational overhead associated with maintaining separate databases, it may not be efficient for the web services provider to store each of the tenants' data in separate databases.